import { getWinFiles } from "@/utils/index"
import { getToken } from "@/utils/auth";
var axios = require("axios");


//添加音频
class addAudio {                       // JS 语法


    constructor() {
        this.title = '添加音频'
        // this.iconSvg = '<svg >...</svg>'
        this.tag = 'button'
    }

    // 菜单是否需要激活（如选中加粗文本，“加粗”菜单会激活），用不到则返回 false
    isActive(editor) {                      // JS 语法
        return false
    }

    // 获取菜单执行时的 value ，用不到则返回空 字符串或 false
    getValue(editor) {                               // JS 语法
        return false
    }

    // 菜单是否需要禁用（如选中 H1 ，“引用”菜单被禁用），用不到则返回 false
    isDisabled(editor) {                     // JS 语法
        return false
    }

    // 点击菜单时触发的函数
    exec(editor, value) {
       
        getWinFiles({ accept: '.ogg,.wav,.mp3' }).then(result => {
            console.log(editor.children, "result")
            

            
            if (result && result.length > 0) {
                var FormData = require("form-data");
                var data = new FormData();
                // data.append("image", file); // file 即选中的文件
                data.append("file", result[0].file); // file 即选中的文件

                var config = {
                    method: "post",
                    url: process.env.VUE_APP_BASE_API + "/fileController/uploadFile", //上传图片地址
                    headers: {
                        "Content-Type": "multipart/form-data",
                        token: getToken(),
                    },
                    data: data,
                };

                axios(config).then(res => {
                    let url = res.data.data; //拼接成可浏览的图片地址
                    console.log(url, "url")
                    let node = {
                        type: 'audio',
                        src:url,
                        // 其他属性 ...
                        children: [{ text: '' }] // void 元素必须有一个 children ，其中只有一个空字符串，重要！！！
                    }
                    editor.insertNode(node)
                })

            }
        })         // JS 语法
        // Modal menu ，这个函数不用写，空着即可
    }
}

export default {
    key: 'addAudio',
    factory() {
        return new addAudio()
    }
}